package com.lc.yygh.hosp;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Component;

/**
 * ClassName ServiceHospApp
 * Description
 * Create by lujun
 * Date 2021/4/16 21:16
 */
@SpringBootApplication
/*@EnableDiscoveryClient
@EnableFeignClients(basePackages = "com.lc.yygh")
@MapperScan("com.lc.yygh.hosp.mapper")*/
/*MapperScan注解可以不写，因为父pom.xml引入了service-util模块，在这个模块了我们写了一个MybatisPlusConfig的一个配置类，里边写好了扫描的包是在com.lc.yygh.*.mapper
* 所以写服务的时候只要引入了service-util模块，就不用写已经在service-util模块配置好的配置了*/
//由于Swagger2Config在不同的包下，加注解扫描到它
@ComponentScan(basePackages = "com.lc.yygh")
@EnableDiscoveryClient  //使这个服务能够注册到nacos上
@EnableFeignClients(basePackages = "com.lc.yygh")//这个服务要远程调用其他服务
public class ServiceHospApp {
    public static void main(String[] args) {
        SpringApplication.run(ServiceHospApp.class,args);
    }
}
/*Swagger2Config和MybatisPlusConfig都是service-util模块的配置，虽然在pom.xml中引入了，但是启动类这里默认扫描的包是com.lc.yygh.hosp,但是那两个配置类的路径是
* com.lc.yygh.common,所以加上@ComponentScan(basePackages = "com.lc.yygh")把公共目录写上，就既可以扫描com.lc.yygh.hosp，也可以扫描com.lc.yygh.common，
* 前提是在pam.xml引入模块，
*
* 总结：

如果你的其他包都在使用了@SpringBootApplication注解的启动类所在的包及其下级包中，则你什么都不用做，SpringBoot会自动帮你把其他包都扫描了(默认是扫描启动类所在的包及其下级包，加了@ComponentScan就是自定义)
如果你有一些bean所在的包(com.lc.yygh.common)，不在启动类所在的包及其下级包中(com.lc.yygh.hosp)，那么你需要手动加上@ComponentScan注解并指定那个bean所在的包*/
